//
//  NSString+Extension.m
//  Potatso
//
//  Created by MasterLambert on 2017/5/9.
//  Copyright © 2017年 TouchingApp. All rights reserved.
//

#import "NSString+Extension.h"
#import <IPIP/IPIP.h>

@implementation NSString (Extension)

- (NSDictionary *)dictionaryWithJsonString{
    if (self == nil) {
        
        return nil;
    }
    
    NSData *jsonData = [self dataUsingEncoding:NSUTF8StringEncoding];
    
    NSError *err;
    
    NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:jsonData
                         
                                                        options:NSJSONReadingMutableContainers
                         
                                                          error:&err];
    if(err) {
        
        NSLog(@"json解析失败：%@",err);
        
        return nil;
        
    }
    
    return dic;
}

- (NSString *) compareAppstoreVersionWithLocal{
    NSString *localVersion = [NSBundle mainBundle].infoDictionary[@"CFBundleShortVersionString"];
    localVersion = [[localVersion componentsSeparatedByCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"."]] componentsJoinedByString:@""];
    
    NSString * appstoreVersion = [[self componentsSeparatedByCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"."]] componentsJoinedByString:@""];
    NSInteger local_version = [localVersion integerValue];
    NSInteger store_version = [appstoreVersion integerValue];
    if (local_version > store_version) {//在审核
        return @"no_in_appstore";
    }else{//审核通过
        return KKInAppStore;
    }
}


#pragma mark - 如果当前版本小于线上最新版本
- (BOOL) compareLocalVersionLessThanAppstoreVersion{
    NSString *localVersion = [NSBundle mainBundle].infoDictionary[@"CFBundleShortVersionString"];
    localVersion = [[localVersion componentsSeparatedByCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"."]] componentsJoinedByString:@""];
    
    NSString * appstoreVersion = [[self componentsSeparatedByCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"."]] componentsJoinedByString:@""];
    NSInteger local_version = [localVersion integerValue];
    NSInteger store_version = [appstoreVersion integerValue];
    if (local_version<store_version) {
        return YES;
    }else{
        return NO;
    }
}

- (NSMutableArray *)stringWithJsonArray{
    if (self == nil) {
        
        return nil;
    }
    NSData *jsonData = [self dataUsingEncoding:NSUTF8StringEncoding];
    NSError *err;
    NSMutableArray *array = [NSJSONSerialization JSONObjectWithData:jsonData

                                                            options:NSJSONReadingMutableContainers                                                          error:&err];
    if(err) {
        NSLog(@"json解析失败：%@",err);
        return nil;
    }
    return array;
}

- (NSTimeInterval) timeDiffence:(NSString *) time{
    NSDateFormatter *fmt = [[NSDateFormatter alloc] init
                            ];
    fmt.
    dateFormat = @"yyyy-MM-dd HH:mm:ss.0";
    NSDate *now = [fmt dateFromString:self];
    NSDate *expired = [fmt dateFromString:time];
    NSTimeInterval timer = [now timeIntervalSinceDate:expired];
    return timer;
}

- (NSString *) replaceMidString{
    NSString *subString3=[self substringWithRange:NSMakeRange(4, 3)];
    NSString * phone = [self stringByReplacingOccurrencesOfString:subString3 withString:@"***"];
    return phone;
}

//- (BOOL)verifyPhoneNumber{
//    NSString * phone = [self stringByReplacingOccurrencesOfString:@" " withString:@""];
//    if (phone.length != 11)
//    {
//        return NO;
//    }else{
//        /**
//         * 移动号段正则表达式
//         */
//        NSString *CM_NUM = @"^((13[4-9])|(147)|(15[0-2,7-9])|(178)|(18[2-4,7-8]))\\d{8}|(1705)\\d{7}$";
//        /**
//         * 联通号段正则表达式
//         */
//        NSString *CU_NUM = @"^((13[0-2])|(145)|(15[5-6])|(176)|(18[5,6]))\\d{8}|(1709)\\d{7}$";
//        /**
//         * 电信号段正则表达式
//         */
//        NSString *CT_NUM = @"^((133)|(153)|(177)|(18[0,1,9]))\\d{8}$";
//        NSPredicate *pred1 = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", CM_NUM];
//        BOOL isMatch1 = [pred1 evaluateWithObject:phone];
//        NSPredicate *pred2 = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", CU_NUM];
//        BOOL isMatch2 = [pred2 evaluateWithObject:phone];
//        NSPredicate *pred3 = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", CT_NUM];
//        BOOL isMatch3 = [pred3 evaluateWithObject:phone];
//        
//        if (isMatch1 || isMatch2 || isMatch3) {
//            return YES;
//        }else{
//            return NO;
//        }
//    }
//}


- (NSString *) iphoneOrIpadNumberStoryBoard{
    CGFloat width = [UIScreen mainScreen].bounds.size.width;
    if (width == 320) {
        return [self stringByAppendingString:@"_5s"];
    }else if (width ==375){
        return [self stringByAppendingString:@"_6s"];
    }else if (width == 414){
        return self;
    }else if (width > 414){
        return [self stringByAppendingString:@"_ipad"];
    }else{
        return self;
    }
}



- (NSArray *) getProvince{
    NSString * pathfile = [[NSBundle mainBundle] pathForResource:@"XiongMao.dat" ofType:nil];
    const char* destDir = [pathfile UTF8String];
    init(destDir);
    const char *ip = [self UTF8String];
    char result[128];
    find(ip, result);
    NSString *str=[NSString stringWithUTF8String:result];
    NSArray *array = [str componentsSeparatedByString:@"\t"];
    destroy();
    return array;
}


@end
